home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MIDICraft's MIDINET CD-ROM
/
MIDICraft's MIDINET CD-ROM.iso
/
DOSUTILS
/
MIDICAT.DOC
< prev
next >
Wrap
Text File
|
1996-01-16
|
5KB
|
150 lines
******************************
MIDICAT v1.0
concatenate midi binaries to play sequentially
by Guenter Nagler
1996
(gnagler@ihm.tu-graz.ac.at)
******************************
[0] FEATURES
+ reads binary midi files
+ writes a binary midi file
+ converts midi time unit resolution to a common multiplier resolution
+ initializes tempo, tact, programs, volumes, chorus, reverb effects,
balance
+ adds a text marker in front beginning of a song
+ removes large pause from end of song
+ inserts 4/4 pauses between the songs
+ requires format 0 midi files because when combining format 1 files
the number of tracks will grow quickly and many players have a track
limitation (e.g. 16 tracks)
+ combine 2 up to 50 songs
[1] BACKGROUND
I am using a Korg i3 music workstation and sometimes I sequence midi songs.
Once I sequenced a series of short xmas melodies and had the trouble to
put the songs together to one xmas medley.
This time I did it manually and it took much time to concatenate the songs.
This brought me to the thought to write a simple midi utility that does
such jobs without much effort.
[2] FILES DESCRIPTION
MIDICAT.EXE.........concatenate program for dos machines
MIDICAT.DOC.........this file, showing usage of MIDICAT.EXE
MIDIIO.HPP..........header file for a c++ midi parser
MIDIIO.CPP..........source code for a c++ midi parser
MIDICAT.CPP.........c++ source code for modifying midi files
MIDICAT.MAK.........make file for project
MIDICAT.CFG.........compiler options for make
MIDICAT.PRJ.........compiler project for Borland (tm) c++ compilers
only MIDICAT.EXE is required to run program
[3] COPYRIGHT
MIDICAT (c) 1996 was created by Guenter Nagler.
MIDICAT is free and may be used as you wish with this one exception:
You may NOT charge any fee or derive any profit for distribution
of MIDICAT. Thus, you may NOT sell or bundle MIDICAT with any
product in a retail environment (shareware disk distribution, CD-ROM,
etc.) without permission of the author.
You may give MIDICAT to your friends, upload it to a BBS, or ftp it to
another internet site, as long as you don't charge anything for it.
[4] DISCLAIMER
MIDICAT was designed to handle 100% compatible midi files.
The midi parser was tested with 1500 different midi files but I can
not say if each 100% midi compatible midi file can be correctly converted.
So I give no guarantees of the results, especially with non 100%
compatible midi files.
If you find a midi file that you think to be 100% compatible midi
that is not correctly converted, please send a sample file to
gnagler@ihm.tu-graz.ac.at .
Use MIDICAT at your own risk. Anything you do with MIDICAT is your
responsibility, and not the author's. Any damage caused to any person,
computer, software, hardware, company, or business by running MIDICAT
is your responsibility, and the author will not be liable.
If you don't understand these terms, or are not sure of something, or
are afraid something bad might come of using MIDICAT, don't use it!
You are here forewarned.
[5] INSTALLATION
[MSDOS]
Simply copy MIDICAT.EXE in a directory that is in your path.
When you start the program without arguments
[UNIX]
compile sources with your C++ compiler (e.g. GNU Compiler g++):
g++ -o midicat midicat.cpp midiio.cpp
and run program
$ midicat
C:\> MIDICAT
you should get the usage text (see next section)
[6] USAGE
MidiCat concatenates midi format 0 files to play sequentially
usage: MidiCat file1.mid file2.mid ... result.mid
file1.mid ... are a list of input midi files.
The output will be written to result.mid if the file is not existent.
Note:
MidiCat only accepts midi format 0 files as input.
Convert other midi formats (1, 2) to format 0 using converters like
midi1to0, midi2to0 !
The resulting midi file will also be in format 0.
[8] SUGGESTIONS / COMMENTS / BUG REPORTS / QUESTIONS
WWW: http://hgiicm.tu-graz.ac.at/Cpub
contains all my dos/unix midi programs
EMAIL: gnagler@ihm.tu-graz.ac.at
[9] USE
example: trying to use format 1 midi as input
C> midicat songfmt1.mid midif0.mid medley.mid
songfmt1.mid: format 1, 12 tracks, resolution 120
songfmt1.mid is format 1 midi!
Convert it to format 0 using midi1to0
C> midi1to0 songfmt1.mid songfmt0.mid
and retry
C> midicat songfmt0.mid midif0.mid medley.mid
songfmt0.mid: format 0, 1 tracks, resolution 120
midif0.mid: format 0, 1 tracks, resolution 240
output written to medley.mid:
medley.mid: format 0, 1 tracks, resolution 240
example: midicat does not allow to overwrite existing files
C> midicat songfmt0.mid midif0.mid existing.mid
output file existing.mid already existing. aborting ...
C> del existing.mid
Deleting existing.mid.
1 file(s) deleted.
and retry again.
Information: Midicat also denies to write output to one of the input files
and will not write to directories without write permission.